/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package ar.com.gestion.MenuPrincipal;

import java.awt.MenuBar;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;

import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JScrollPane;

import ar.com.gestion.dominio.Producto;
import ar.com.gestion.dominio.Vendedor;
import ar.com.gestion.listeners.BotonesArchivoListener;
import ar.com.gestion.listeners.BotonesBkupListener;
import ar.com.gestion.listeners.EliminarProductoActionListener;
import ar.com.gestion.listeners.MenuAgregarActionListener;
import ar.com.gestion.listeners.UsuarioListener;
import ar.com.gestion.springcontext.SpringContext;
import ar.com.gestion.tabla.ModeloTabla;

/**
 * 
 * @author martinLequerica
 */
public class MenuPrincipalController {


	private MenuPrincipal menuPrincipal = (MenuPrincipal) SpringContext
			.getContext().getBean("menuPrincipal");

	private LinkedList<JMenuItem> listaBotonesAgregar = new LinkedList<JMenuItem>();// lista
	private LinkedList<JMenuItem> listaBotonesEliminar = new LinkedList<JMenuItem>();// lista
	private LinkedList<JMenuItem> listaBotonesModificar = new LinkedList<JMenuItem>();// lista
	private LinkedList<JMenuItem> listaBotonesBkup = new LinkedList<JMenuItem>();// lista
	private LinkedList<JMenuItem> listaBotonesArchivo = new LinkedList<JMenuItem>(); // lista
	private LinkedList<JMenu> listaBotonesMenu = new LinkedList<JMenu>(); // lista
	
	private List<Producto> lla;// total
	private List<Producto> llaVenta;// cargado en la lista
	private List<Producto> llaT;// cargado en la tabla
	private String[] etiquetasBotones = { "Producto","Cliente" };// creo las etiquetas de
														// los items del menu
	private String[] etiquetasUsuario = { "Modificar", "agregar",
			"Cambiar Usuario","Pagar Cuotas","Pagar Fiado" };
	private String[] etiquetasBkup = { "Crear Bkup", "Recuperar Bkup" };
	private String[] etiquetasArchivo = { "Cerrar Turno", "Cerrar caja del dia","Modificar Vendedor" };
	private String[] EtiquetasMenuBar = { "Agregar", "Eliminar", "Usuario",
			"Back up", "Archivo" };// creo las etiquetas del menu
	// private MenuPrincipal menuPrincipal; //menu principal
	private MenuBar mb; // menu bar
	private JPanel panelDerecho, panelIzq, panelTabla;
	// tabla
	private ModeloTabla modelo;
	private JScrollPane scroll;
	
	

	public MenuPrincipalController(Vendedor vendedor) {
		menuPrincipal.MenuPrincipalinicio();
		cargarBarraMenu();

		menuPrincipal.refrescarTabla();
		
		JPanel panelUsuario = menuPrincipal.getPanelUsuario();
		panelUsuario.add(new JLabel("Nombre: "));
		panelUsuario.add(new JLabel(vendedor.getNombre()));
		panelUsuario.add(new JLabel("Apellido"));
		panelUsuario.add(new JLabel(vendedor.getApellido()));
		
		
		// TODO el boton cancelar el es boton refresh
	}

	private void cargarBarraMenu() {

		for (int i = 0; i < EtiquetasMenuBar.length; i++) {
			listaBotonesMenu.add(new JMenu(EtiquetasMenuBar[i]));
		}

		JMenuBar jmenu = new JMenuBar();

		menuPrincipal.setJMenuBar(jmenu);
		Iterator<JMenu> i = listaBotonesMenu.iterator();

		while (i.hasNext()) {
			JMenu next = i.next();

			jmenu.add(next);

		}

		for (int i1 = 0; i1 < etiquetasBotones.length; i1++) {

			listaBotonesAgregar.add(new JMenuItem(etiquetasBotones[i1]));
			listaBotonesEliminar.add(new JMenuItem(etiquetasBotones[i1]));

		}

		for (int k = 0; k < etiquetasUsuario.length; k++) {

			listaBotonesModificar.add(new JMenuItem(etiquetasUsuario[k]));
		}

		for (int i1 = 0; i1 < listaBotonesAgregar.size(); i1++) {

			listaBotonesMenu.get(0).add(listaBotonesAgregar.get(i1));
			listaBotonesAgregar.get(i1).addActionListener(
					new MenuAgregarActionListener());
			listaBotonesMenu.get(1).add(listaBotonesEliminar.get(i1));
			listaBotonesEliminar.get(i1).addActionListener(
					new EliminarProductoActionListener());

		}

		for (int k = 0; k < listaBotonesModificar.size(); k++) {
			JMenuItem jMenuItem = listaBotonesModificar.get(k);
			jMenuItem.addActionListener(new UsuarioListener());
			listaBotonesMenu.get(2).add(jMenuItem);
		}

		for (int j = 0; j < etiquetasBkup.length; j++) {
			listaBotonesBkup.add(new JMenuItem(etiquetasBkup[j]));
		}

		for (JMenuItem menuBkup : listaBotonesBkup) {
			menuBkup.addActionListener(new BotonesBkupListener());
			listaBotonesMenu.get(3).add(menuBkup);
		}

		for (int j = 0; j < etiquetasArchivo.length; j++) {
			listaBotonesArchivo.add(new JMenuItem(etiquetasArchivo[j]));
		}

		for (JMenuItem menuArch : listaBotonesArchivo) {
			menuArch.addActionListener(new BotonesArchivoListener());
			listaBotonesMenu.get(4).add(menuArch);
		}

		menuPrincipal.setVisible(true);

	}

	
	

	public MenuPrincipal getMenuPrincipal() {
		return menuPrincipal;
	}

	public void setMenuPrincipal(MenuPrincipal menuPrincipal) {
		this.menuPrincipal = menuPrincipal;
	}

}